﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace AssessmentActions
{
    /// <summary>
    /// Abstract question class
    /// </summary>
    [Serializable()]
    public abstract class Question : ISerializable
    {
        protected int _id;
        private string _subject;
        protected string _text;

        public Question()
        {

        }
        abstract public string getQuestionHtml();
        abstract public string getQuestionWithAnswerHtml();
        abstract public string getQuestionXml();
        abstract public string getQuestionWithAnswerXml();
        abstract public string getQuestionHtmlWithSelector();

        public override string ToString()
        {
            return this.getQuestionWithAnswerHtml();
        }

        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }

        protected string Subject
        {
            get { return _subject; }
            set { _subject = value; }
        }

        public string Text
        {
            get { return _text; }
            set { _text = value; }
        }

        abstract public string getCorrectAnswer();

        public Question(SerializationInfo info, StreamingContext ctxt) { }
        public void GetObjectData(SerializationInfo info, StreamingContext ctxt) { }

        

    }

}
